package com.suprema.biomini;

import java.awt.Graphics;

/**
 * 可繪製指紋圖像
 * @author Kent Yeh
 */
public interface Fingerprintable {

    /**
     * Specifies whether the core of fingerprint is drawn of not.   
     * @return 
     */
    boolean isCore();

    /**
     * 繪圖與邊界的空隙
     * @return 空隙
     */
    int getPadding();

    /**
     * 指紋機圖像與實際繪圖，有所偏差，必須指定指紋機之左右偏差以加以修正
     * @return 左右偏差量
     */
    int getDiffX();

    /**
     * 指紋機圖像與實際繪圖，有所偏差，必須指定指紋機之左右偏差以加以修正
     * @param diffX 左右偏差量
     */
    void setDiffX(int diffX);

    /**
     * 指紋機圖像與實際繪圖，有所偏差，必須指定指紋機之上下偏差以加以修正
     * @return 上下偏差量
     */
    int getDiffY();

    /**
     * 指紋機圖像與實際繪圖，有所偏差，必須指定指紋機之上下偏差以加以修正
     * @param diffY 上下偏差量
     */
    void setDiffY(int diffY);

    /**
     * 繪製指紋之左上定位
     * @return X-軸定位點
     */
    int getClientFpLeftTopX();

    /**
     * 繪製指紋之左上定位
     * @return Y-軸定位點
     */
    int getClientFpLeftTopY();

    /**
     * 繪製指紋之右下定位
     * @return X-軸定位點
     */
    int getClientFpBottomRightX();

    /**
     * 繪製指紋之右下定位
     * @return Y-軸定位點
     */
    int getClientFpBottomRightY();

    /**
     * 必須可繪圖
     * @param g 
     */
    void paint(Graphics g);
}
